草庐IT

JavaBeans 替代品?

全部标签

c++ - istrstream 的更好替代品?

istrstream非常适合我的需求-基本上,采用固定的字符缓冲区,并给我一个简单的方法来提取行getline()并测试eof()我正在将我们的项目切换到C++17合规性-它已弃用istrsteam-显然是因为有太多C++程序员无法理解固定缓冲区内存管理(你是认真的吗?!)无论如何,istringstream提供相同的使用语义,但它强加了现在在构造时复制整个固定字符缓冲区的需要。这是一个反模式。我正在寻找的是一种使用string_view代替istringstream的string的方法,或者更好的方法stringstream的替代品,它本身处理外部管理的固定缓冲区(它只需要指向它,它

C++ 单例 : how good is this solution? 优点/缺点,替代方案

我正在开发一个包含多个类的C++项目,这些类必须是单例,它们之间存在依赖关系(初始化顺序很重要)。我想出了这个解决方案:所有我想成为单例的类都有protected构造函数,例如:classMySingleton1{protected:MySingleton1();}有一个源文件singleton_factory.cpp包含一个实例化类Singletons,它派生自所有我想成为单例的类,像这样:#include"MySingleton1.hpp"#include"MySingleton2.hpp"classSingletons:publicMySingleton1,publicMySin

c++ - C++ 类成员的替代实现语法

在C++中声明和实现类或结构时,我们通常会这样做:H文件namespaceSpace{classSomething{voidmethod();}}CPP文件voidSpace::Something::method(){//dostuff}或namespaceSpace{voidSomething::method(){//dostuff}}请注意如何将所有实现包装在namespaceblock中,这样我们就不需要在每个成员之前编写Space::。有没有办法以类似的方式包装类(class)成员?请注意我想将源文件和头文件分开。这通常是一个很好的做法。 最佳答案

c++ - MS SQL、C++ 解决方案的最佳全文搜索替代方案

MicrosoftSQL的最佳全文搜索替代方案是什么?(适用于MSSQL)我正在寻找类似于Lucene的内容和Lucene.NET但没有.NET和Java要求。我还想找到一种可用于商业应用的解决方案。 最佳答案 看看CLucene-它是javaLucene的一个维护良好的C++端口。它目前已获得LGPL许可,我们将其用于我们的商业应用。性能令人难以置信,但是您必须了解一些奇怪的API约定。 关于c++-MSSQL、C++解决方案的最佳全文搜索替代方案,我们在StackOverflow上找

为什么说 Podman 是 Docker 的一个替代方案?

Linux容器技术Linux容器已逐渐成为一种关键的开源应用程序打包和交付技术,将轻量级应用程序隔离与基于镜像的部署方法的灵活性相结合。RedHatEnterpriseLinux使用核心技术实现Linux容器,例如:控制组(cgroups)用于资源管理命名空间(namespace)用于进程隔离SELinux用于安全性安全多租户这些技术一定程度上降低了安全漏洞的可能性,并为您提供了生成和运行企业级容器的环境。Podman简介Podman是一个开源的容器运行时项目,可在大多数Linux平台上使用。Podman提供与Docker非常相似的功能。Podman提供了一个与Docker兼容的CLI工具(命

c++ - 是否有 boost::phoenix::at_c 结合 boost::spirit::qi::grammar 的替代方案

我已经创建了一个测试应用程序来说明我的问题。它解析以“a=”或“b=”开头并以“\r\n”分隔的整数列表。该列表包含以任何顺序多次出现的这些字段。#include#include#include#include#include#includetypedefstd::vectoruint_vector_t;std::ostream&operatorstructMyParser:publicboost::spirit::qi::grammar{MyParser():MyParser::base_type(Parser,"Parser"){usingboost::spirit::qi::ui

c++ - OpenSSL 静态库太大,有什么替代方法或方法可以减小它的大小吗?

我使用了OpenSSL1.0的预构建静态库,但它使我的二进制文件太大(在Release模式下将其大小增加了大约800Kb)。我不需要OpenSSL的大部分功能,例如BIO,我使用自己的套接字,因此在代码中我只使用了几个SSL_XXXXXXXXX调用(SSL_accept(3)或SSL_connect(3)、SSL_read(3)和SSL_write(3))我唯一的要求是支持SSLv2/v3在windows上使用winsock,在linux上支持客户端和服务器端的套接字(对于C++)有没有办法让OpenSSL变得更小(也许通过自己编译),或者,在最后的手段中,有任何其他好的但更轻量级的S

c++ - 使用类属性值作为方法默认参数的替代方法?

我想实现这样的目标:classC{intm_nVal;public:C(intnVal):m_nVal(nVal){}voidfoo(intnVal=m_nVal){//usenVal,ifprovided;otherwiseusem_nVal}};Cc(1);c.foo();//use1c.foo(2);//use2这是不可能的,因为C++标准说:anon-staticmembershallnotbeusedinadefaultargument我的选择是:(1)重载foo():classC{intm_nVal;public:C(intnVal):m_nVal(nVal){}voidf

c++ - 是否有 auto_ptr 的替代品可以与 c++11 中的 boost ptr_map 一起使用

在c++11中,auto_ptr已弃用,取而代之的是更合理的unique_ptr。唉,如果你使用boost::ptr_map,auto_ptr就完成了一个非常方便的用途:std::auto_ptrpLayer(newLayer());mRawLayerPtrMap.insert(layerName,pLayer);是否有可能使用与c++11类似的东西。这个我知道Layer*pLayer=newLayer();mFusedLayers.insert(fusedLayerName,pLayer);有效,但auto_ptr在一些更复杂的场景中有它的优点。是否有适用于C++11的替代品?

c++ - typeid() 面向对象的设计替代方案

我有以下使用3个不同映射的类:键始终是字符串,而值可以是字符串、整数或float。classMyMaps{public:templatevoidaddKey(conststd::string&key);voidaddValue(conststd::string&key,conststd::string&value);voidaddValue(conststd::string&key,intvalue);voidaddValue(conststd::string&key,floatvalue);private:std::mapstringFields;std::mapintFields;